﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio;
using Entidad;
using System.Globalization;
using SpreadsheetLight;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using System.IO;
using System.Configuration;

namespace WebProveedores
{
    public partial class AsignarSociedadUsuario : System.Web.UI.Page
    {
        public EnUsuario objUsuario = new EnUsuario();
        private List<EnCombo> lstNoAsig = new List<EnCombo>();
        private List<EnCombo> lstSiAsig = new List<EnCombo>();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                if (Session["usuario"] == null)
                {
                    Response.Redirect("LoginIntra.aspx");
                }
                else
                {
                    objUsuario = (EnUsuario)Session["usuario"];
                    if (!objUsuario.tipo.Equals("1"))// no puede entrar a esta página. NO es admin
                    {
                        Response.Redirect("Default.aspx");
                    }
                    else
                    {//SI es admin
                        //cargo datos de pantalla
                        cargarDatos();
                    }
                }
            }
        }

        private void cargarDatos()
        { 
            //combo de usuarios
            NeUsuario NeU = new NeUsuario();
            ddl_usuarios.DataValueField = "codigo";
            ddl_usuarios.DataTextField = "decrip";
            ddl_usuarios.DataSource = NeU.getUsuarios();
            ddl_usuarios.DataBind();

        }

        protected void ddl_usuarios_SelectedIndexChanged(object sender, EventArgs e)
        {

            //carga de sociedades no asignadas
            NeUsuario NeU = new NeUsuario();
            lsb_NoAsig.DataValueField = "codigo";
            lsb_NoAsig.DataTextField = "decrip";
            lstNoAsig = NeU.getSociedadesNoAsigXUsuario(ddl_usuarios.SelectedValue);
            lsb_NoAsig.DataSource = lstNoAsig;
            lsb_NoAsig.DataBind();


            //carga de sociedades si asignadas
            lsb_SiAsig.DataValueField = "codigo";
            lsb_SiAsig.DataTextField = "decrip";
            lstSiAsig = NeU.getSociedadesSiAsigXUsuario(ddl_usuarios.SelectedValue,"");
            lsb_SiAsig.DataSource = lstSiAsig;
            lsb_SiAsig.DataBind();

            Session["lstSiAsig"] = lstSiAsig;
            Session["lstNoAsig"] = lstNoAsig;
        }

        protected void btn_add_Click(object sender, EventArgs e)
        {
            List<EnCombo> lstNoA = new List<EnCombo>();
            lstSiAsig = (List<EnCombo>)Session["lstSiAsig"];
            lstNoAsig = (List<EnCombo>)Session["lstNoAsig"];
            if (lstNoAsig.Count > 0)
            {
                EnCombo itadd = new EnCombo();
                itadd.codigo = lsb_NoAsig.SelectedValue;
                for (int i = 0; i < lstNoAsig.Count; i++)
                {
                    if (lstNoAsig[i].codigo.Equals(itadd.codigo))
                    {
                        itadd.decrip = lstNoAsig[i].decrip;
                    }
                    else
                    {
                        EnCombo itno = new EnCombo();
                        itno.codigo = lstNoAsig[i].codigo;
                        itno.decrip = lstNoAsig[i].decrip;
                        lstNoA.Add(itno);
                    }
                }


                lstSiAsig.Add(itadd);
                lsb_SiAsig.DataValueField = "codigo";
                lsb_SiAsig.DataTextField = "decrip";
                lsb_SiAsig.DataSource = lstSiAsig;
                lsb_SiAsig.DataBind();

                lsb_NoAsig.DataValueField = "codigo";
                lsb_NoAsig.DataTextField = "decrip";
                lsb_NoAsig.DataSource = lstNoA;
                lsb_NoAsig.DataBind();


                Session["lstSiAsig"] = lstSiAsig;
                Session["lstNoAsig"] = lstNoA;
            }
        }

        protected void btn_del_Click(object sender, EventArgs e)
        {
            List<EnCombo> lstSiA = new List<EnCombo>();
            lstSiAsig = (List<EnCombo>)Session["lstSiAsig"];
            lstNoAsig = (List<EnCombo>)Session["lstNoAsig"];
            if (lstSiAsig.Count > 0)
            {
                EnCombo itadd = new EnCombo();
                itadd.codigo = lsb_SiAsig.SelectedValue;
                for (int i = 0; i < lstSiAsig.Count; i++)
                {
                    if (lstSiAsig[i].codigo.Equals(itadd.codigo))
                    {
                        itadd.decrip = lstSiAsig[i].decrip;
                    }
                    else
                    {
                        EnCombo itno = new EnCombo();
                        itno.codigo = lstSiAsig[i].codigo;
                        itno.decrip = lstSiAsig[i].decrip;
                        lstSiA.Add(itno);
                    }
                }


                lstNoAsig.Add(itadd);
                lsb_NoAsig.DataValueField = "codigo";
                lsb_NoAsig.DataTextField = "decrip";
                lsb_NoAsig.DataSource = lstNoAsig;
                lsb_NoAsig.DataBind();

                lsb_SiAsig.DataValueField = "codigo";
                lsb_SiAsig.DataTextField = "decrip";
                lsb_SiAsig.DataSource = lstSiA;
                lsb_SiAsig.DataBind();


                Session["lstSiAsig"] = lstSiA;
                Session["lstNoAsig"] = lstNoAsig;
            }
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            NeUsuario NeU = new NeUsuario();
            EnUsuario usu = new EnUsuario();
            lstSiAsig = (List<EnCombo>)Session["lstSiAsig"];
            int ret = NeU.setSociedadesXusu(lstSiAsig, ddl_usuarios.SelectedValue);
            if (ret == 0)
            {   
                
                ClientScript.RegisterStartupScript(this.GetType(), "Resultado", "alert('" + "Sociedades asignadas." + "');", true);
                Response.Redirect("AsignarSociedadUsuario.aspx");
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Resultado", "alert('" + "Error al asignar sociedades." + "');", true);
            }

        }
    }
}